1. Field of the Invention
The present disclosure is related to gateways. More particularly, the present disclosure is related to gateways having localized in-memory databases and business logic execution capabilities.
2. Description of Related Art
Enterprises are increasingly being asked to expose business logic and information through service layers. The performance of the exposed business logic and data access can be a limiting factor on their usefulness and commercial success.
One approach for exposing business logic and information via a service layer is to install an application known as a gateway. This application sits between the consumers of its services and data, and the actual sources of the data and business logic, which are typically based on older relational database technology and programming languages. Unfortunately, prior gateways have not provided sufficient resolution or query time, when using the large amounts of data and business logic common in today's enterprise applications, because of their reliance on older relational database technology and methods of invoking and executing said business logic.
Many prior solutions attempt to lower the resolution time by better organizing, relating, and indexing the data passing through the gateway, and providing Remote Procedure Call style access to business logic. Unfortunately, such database indexing schemes offered by relational databases are disk based, and the data and business logic is typically located on a separate physical server. As such, all of these solutions are limited by the input-output rate of the disk, as well as network latency.
Recently, some solutions that may be used as an alternate “backend” for a gateway instead of a relational database, have attempted to accelerate the data resolution time by storing some of the data directly in the RAM or cache memory of the gateway. These solutions, such as those available from Prevayler and Tangesol, have shown some success at overcoming the limitations imposed on the resolution time by the disk input-output rate. Unfortunately, scalability of such systems has proven difficult and expensive because of their reliance on distributed caches that introduce an element of network latency into data and business logic access, their usage of Java objects in their implementation which causes undesirable “object churning” of the items in the database and negatively impacts the performance and speed of these systems, and the fact that these components are not tightly coupled with a complete gateway solution.
As used herein, the term “object churning” refers to the act within a JAVA construct of continually creating and discarding objects (including arrays) from the memory heap. This object creation and destruction is managed by a software component known as a “garbage collector”, and the overhead involved becomes a bottleneck when such a system is under high load.
Accordingly, there is a continuing need for gateways and methods that overcome, alleviate and/or mitigate one or more of the aforementioned and other deleterious effects of the prior art.